package demo6;

import java.util.Objects;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 何华树
 * Date: 2024-09-03
 * Time: 13:29
 */
public class Dog {
    public String name;
    public int age;

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void eat() {
        System.out.println(this.name+" 正在吃饭..");
    }

    //重写 equals，重新定义比较的规则
    //由于对比的是狗类，所以，在Dog 类继承 Object 基础上，重写equals
    public boolean equals(Object object) {
        Dog tmp = (Dog)object;
        return tmp.name.equals(this.name) && tmp.age == this.age;
    }
    //想要返回一样的 hash数，就必须重写 hashCode方法，重新定义新规则。
    public int hashCode() {
        return Objects.hash(name,age);
        //根据 name和age 生成哈希数，如果一样，则会返回一样的数字。
    }
}
